package cn.edu.tust.db;

import java.util.List;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;

public class DBProvider {
	/**
	 * 数据查询操作
	 * 
	 * @param <T>
	 * 
	 * @param strSql
	 *            查询语句
	 * @param clazz
	 *            结果集中实体类的类名
	 * @param pramas
	 *            查询的参数[可以使用数组传参]
	 * @return 查询结果集[List+Bean]
	 */
	public <T> List<T> query(String strSql, Class<T> clazz, Object... pramas) {
		// 返回的结果集
		List<T> lst = null;
		try {
			// 1、 创建查询对象 queryrunner
			QueryRunner qr = new QueryRunner(MyDataSource.getDataSource());
			// 3、执行数据库操作，获取结果集
			lst = qr.query(strSql, new BeanListHandler<>(clazz), pramas);
		} catch (Exception e) {
			// 出现异常
			System.out.println("数据查询出现异常：" + e.getMessage());
			e.printStackTrace();
		}
		return lst;
	}

	/**
	 * 保存更新数据
	 * 
	 * @param strSql
	 *            操作SQL语句
	 * @param pramas
	 *            参数
	 * @return 操作结果
	 */
	public int saveOrUpdate(String strSql, Object... pramas) {
		// 返回的结果集
		int ii = 0;
		try {
			// 1、 创建查询对象 queryrunner
			QueryRunner qr = new QueryRunner(MyDataSource.getDataSource());
			// 3、执行数据库操作，获取结果集
			ii = qr.update(strSql, pramas);
		} catch (Exception e) {
			// 出现异常
			System.out.println("数据保存出现异常：" + e.getMessage());
			e.printStackTrace();
		}
		return ii;
	}
}
